Various schemes have been proposed to add a degree of “interactivity” to a printed document in conjunction with a computer system. These include printing barcodes in the document which encode universal resource locators and thereby allow printed “hyperlinks” to be activated. To make the interactivity of a printed document more seamless, and to support more sophisticated functions such as handwriting entry, it has been proposed to code the surface of a document with position-indicating or function-indicating data which is effectively invisible to the unaided human eye. The document typically includes data visible to the user, and the user ostensibly interacts with this visible data using a sensing device which in reality detects and decodes the invisible coded data.
The coded data may be in the form of discrete tags, each of which encodes data separately from other discrete tags. To decode the data in discrete tags it is first necessary to identify the discrete tag and its orientation relative to the sensing device. This usually requires the inclusion of target structures in the tag, which add to the overall size of each tag. Target structures may be shared between adjacent tags to reduce the effective overall size of each tag. One drawback of discrete tags is the need for the sensing device to have at least one complete tag in its field of view. Coupled with the possible need to allow the sensing device to be tilted with respect to the surface, the field of view of the sensing device may need to be significantly larger than the tag size, as discussed in the present applicant's co-pending PCT Application WO 00/72249.
Schemes have been proposed which use self-registering patterns and thereby dispense with explicit targets. When using a self-registering pattern, the pattern of the data itself can implicitly support operations normally supported by explicit targets, including determination of the orientation of the pattern with respect to the sensing device and determination of the alignment of the data within the pattern.
In its simplest form, a self-registering pattern consists of a rectangular or other regular grid of glyphs. Each glyph is spatially separated from its neighbors so that it can be distinguished from its neighbors. This provides the first level of registration. Grid lines can then be fitted through the points defined by the glyphs to identify the oriented (and possibly perspective-distorted) rectangular grid. This provides the second level of registration, allowing glyphs to be sampled relative to the grid. The self-registering pattern must contain a target pattern which, once located, allows the orientation and translation of the glyph grid to be determined. This provides the third and final level of registration, allowing glyph data to be assembled into data packets and interpreted. So-called m-sequences, because of their maximal-length and cyclic properties, have been proposed as the basis for various self-registering position-coding patterns.
The sensing and subsequent decoding of a position-coding pattern on a surface may be subject to error, due, for example, to the surface being damaged or dirty. Self-registering patterns do not directly support the detection and/or correction of errors.